#if !defined(__RECEPTEUR_H)
#define __RECEPTEUR_H

#include "reseau.h"

class instantane_du_piano;

/**
 * Classe à qui on délègue la réception de paquets (TCP synchrone/asynchrone,
 * UDP) sur le réseau.
 */
class recepteur_reseau {
	TCPsocket &chaussette_tcp_;
    UDPsocket &chaussette_udp_;
    SDLNet_SocketSet &assortiment_de_chaussettes_;
    UDPpacket *paquet_;
public:
	recepteur_reseau(TCPsocket&, UDPsocket&, SDLNet_SocketSet&) throw();
	~recepteur_reseau() throw() { SDLNet_FreePacket(paquet_); }	
    bool recevoir_tcp_asynchrone(void *buffer);
    void recevoir_tcp(void *buffer);	
	bool recevoir_port_udp(Uint16 &prt);
    bool recevoir_udp(instantane_du_piano &s);
};

#endif
